package com.zmn.brs.utils;


import com.alibaba.fastjson.JSON;
import com.zmn.brs.model.entity.common.JsonItem;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 类描述：jsonitem对象工具类
 *
 * @author liuyong
 * @since 2021/07/16 15:02
 */
@Slf4j
@Component
public class JsonItemUtil {


    public static String getStaffJsonItemStr(String jsonItemStr) {
        if (jsonItemStr != null) {
            StringBuilder itemStrs = new StringBuilder();
            try {
                if (!isJosn(jsonItemStr)) {
                    return jsonItemStr;
                }
                List<JsonItem> itemList = JSON.parseArray(jsonItemStr, JsonItem.class);
                if (itemList != null) {
                    for (int j = 0; j < itemList.size(); j++) {
                        if (itemStrs.length() > 0) {
                            itemStrs.append("、");
                        }
                        String str = itemList.get(j).getText();
                        if (str.contains("<")) {
                            str = str.split("<")[0];
                        }
                        itemStrs.append(str);
                    }
                }
            } catch (Exception ex) {
                log.error("JsonItemUtil.getJsonItemStr出现异常={}", ex);
                return jsonItemStr;
            }
            return itemStrs.toString();
        }
        return null;
    }

    public static String getJsonItemStr(String jsonItemStr) {
        if (jsonItemStr != null) {
            StringBuilder itemStrs = new StringBuilder();
            try {
                if (!isJosn(jsonItemStr)) {
                    return jsonItemStr;
                }
                List<JsonItem> itemList = JSON.parseArray(jsonItemStr, JsonItem.class);
                if (itemList != null) {
                    for (int j = 0; j < itemList.size(); j++) {
                        if (itemStrs.length() > 0) {
                            itemStrs.append("、");
                        }
                        itemStrs.append(itemList.get(j).getText());
                    }
                }
            } catch (Exception ex) {
                log.error("JsonItemUtil.getJsonItemStr出现异常={}", ex);
                return jsonItemStr;
            }
            return itemStrs.toString();
        }
        return null;
    }

    /**
     * 判斷是否是json
     *
     * @param json
     * @return
     */
    public static boolean isJosn(String json) {
        json = json.trim();
        if ((json.startsWith("{") && json.endsWith("}"))) {
            return true;
        } else if ((json.startsWith("[") && json.endsWith("]"))) {
            return true;
        }
        return false;
    }
}
